package br.rafael.mulock.controle_de_estoque.modelo.pojo;

import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name = "cliente")
public class Cliente {

	@Id	
	@Column(name = "cpf", nullable=false, length=11, unique=true)
	private String cpf;
	
	@Column(name = "nome", nullable=false, length=100)
	private String nome;
	
	@Column(name = "endereco", nullable=false, length=200)
	private String endereco;
	
	@Column(name = "observacao", nullable=true)
	private String observacao;
	
	@Column(name = "data_cadastro", nullable=false, updatable=false)
	private Date dataCadastro;
	
	@ManyToOne(targetEntity=Usuario.class)
	@JoinColumn(name = "login_usuario", referencedColumnName="login", updatable=false)
	private Usuario usuario;
	
	@OneToMany(mappedBy = "cliente", targetEntity=Pedido.class)
	private List<Pedido> pedido;

	public String getCpf() {
		return cpf;
	}

	public void setCpf(String cpf) {
		this.cpf = cpf;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getEndereco() {
		return endereco;
	}

	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}

	public String getObservacao() {
		return observacao;
	}

	public void setObservacao(String observacao) {
		this.observacao = observacao;
	}

	public List<Pedido> getPedido() {
		return pedido;
	}

	public void setPedido(List<Pedido> pedido) {
		this.pedido = pedido;
	}

	public Date getDataCadastro() {
		return dataCadastro;
	}

	public void setDataCadastro(Date dataCadastro) {
		this.dataCadastro = dataCadastro;
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
}
